iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
AI & Data

從資料庫到資料分析視覺化系列 第 22

{DAY 22} Pandas 學習筆記part.8

  • 分享至 

  • xImage
  •  

前言

這篇文章主要會提到資料分組

會繼續利用kaggle上的開源資料進行更多的pandas練習

Kaggle: Your Machine Learning and Data Science Community

看的課程還是Coursera上的 Introduction to Data Science in Python

Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera

練習是利用上述課程裡教的搭配以前在學校學過的知識

並且使用kaggle實際的資料檔

整理出來的筆記

資料的分組

現在要練習資料的分組

在數據分析中,其實比起針對一筆一筆的資料分析

更方便的做法是將資料進行分組後

在針對不同組別類型進行下一步的資料分析

像是性別、城市、國家、屬性等等

這是從kaggle上找到一筆關於學生成績的紀錄

方便進行分組的比較

Students Performance in Exams

先把這筆資料讀進來

看看資料的架構長怎樣

import pandas as pd

df = pd.read_csv("StudentsPerformance.csv", index_col=0)
df.head()

可以看到資料有分成性別、組別、教育類型、午餐、考試準備的課程,還有不同考試的分數

接著練習使用.groupby()進行分組

假如現在想用性別把所有資料分成兩組

df.groupby("gender")

由於單純用groupby會回傳內存地址,並不好解讀,所以放到list裡

list(df.groupby("gender"))

可以看到使用groupby之後,資料被依照性別分成了兩個組別回傳

如果依照種族、學歷等等,也會依照同樣的形式將所有資料分類

接下來就可以在分組後面接上聚合函數進行aggregation的聚合操作

假如現在想計算男生女生在各個學科裡的平均分數

df.groupby("gender").mean()

可以看到groupby搭配聚合函數後

很快速的算出不同性別在不同學科的平均數

還有很多的聚合函數

像是

最大值.max()、最小值.min()、中位數medium.()、標準差std.()、變異數var.()

print("不同組別的最大值", df.groupby("race/ethnicity").max())


可以看到回傳的資料根據group A到group E分別在不同欄位裡的最大值

如果想針對不同欄位分別求不同的值,

或是只想知道特定幾個欄位

可以利用dictionary指定想要的欄位跟想要計算的聚合函數

df.groupby("race/ethnicity").agg({"math score":"mean","reading score":"std"})

小結

今天練習的資料操作搭配到聚合函數

pandas還有強大的資料運算處理能力

已經完美設計好的套件

可以更快速地處理這篇學到的聚合函數,並且整合

最後用易讀性高的表格顯示

下一篇文章會繼續針對資料分析的語法學習


上一篇
{DAY 21} Pandas 學習筆記part.7
下一篇
{DAY 23} Pandas 學習筆記part.9
系列文
從資料庫到資料分析視覺化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言